// pages/tabBer/tooth/tooth.js
Page({

    /**
     * 页面的初始数据
     */
    data: {
        imageList: [], // 已上传的原图
        analyzedImageList: [], // 大模型分析后的图片
        detectionResults: [], // 检测结果（序号、牙齿状况、置信度）
        // 拍摄注意事项列表
        noticeItems: [
            "请在自然光充足处拍摄，避免逆光或光线过暗",
            "拍摄时请自然张开嘴巴，露出全部牙齿（包括后槽牙）",
            "保持镜头与牙齿平行，距离约30cm，确保画面清晰无模糊",
            "避免遮挡牙齿，不要佩戴口罩、牙套等物品",
            "建议拍摄正面、左侧、右侧三个角度的照片，分析更全面"
        ],
        // 参考拍摄示例（需替换为实际图片路径）
        exampleItems: [
            { img: "/assets/images/my/avatar.jpg", label: "正面拍摄" },
            { img: "/assets/images/my/avatar.jpg", label: "左侧拍摄" },
            { img: "/assets/images/my/avatar.jpg", label: "右侧拍摄" }
        ],
        // 检测历史列表
        historyItems: [
            { id: 1, name: "全面牙齿健康检测", time: "2024-05-20 14:30", scoreLevel: "优秀", score: 92 },
            { id: 2, name: "全面牙齿健康检测", time: "2024-04-18 09:15", scoreLevel: "良好", score: 87 },
            { id: 3, name: "全面牙齿健康检测", time: "2024-03-25 16:40", scoreLevel: "一般", score: 60 }
        ],
    },

    /**
     * 删除图片
     * @param {Object} e 事件对象
     */
    onDeleteImage(e) {
        // 从事件对象中获取我们之前设置的 index
        const index = e.currentTarget.dataset.index;
        
        // 显示一个模态对话框询问用户是否确认删除
        wx.showModal({
            title: '提示',
            content: '确定要删除这张图片吗？',
            success: (res) => {
                if (res.confirm) {
                    // 如果用户点击了“确定”，则执行删除操作
                    console.log('用户点击确定删除，索引为：', index);
                    
                    // 关键：从数组中删除对应索引的元素
                    // 使用 slice 创建一个新数组，避免直接修改原数组
                    const newImageList = this.data.imageList.slice();
                    newImageList.splice(index, 1);

                    // 更新页面数据
                    this.setData({
                        imageList: newImageList
                    });

                    // 可以在这里添加删除服务器端图片的逻辑
                    // wx.request({...})
                } else if (res.cancel) {
                    // 如果用户点击了“取消”，则不做任何操作
                    console.log('用户点击取消删除');
                }
            }
        });
    },

    // 选择/拍摄图片
    onChooseImage() {
        wx.chooseImage({
            count: 9,                // 最多选择9张
            sizeType: ['compressed'],// 选择压缩图（减小体积）
            sourceType: ['album', 'camera'], // 支持相册和相机
            success: (res) => {
                // 将新选择的图片追加到列表中
                this.setData({
                    imageList: this.data.imageList.concat(res.tempFilePaths),
                    currentStep: 2
                });
            },
            fail: (err) => {
                console.log('选择图片失败', err);
            }
        });
    },

    startDetection() {
        if (this.data.imageList.length === 0) {
          wx.showToast({
            title: '请先上传图片',
            icon: 'none'
          });
          return;
        }
      
        // 模拟调用大模型分析图片（实际项目中替换为真实接口请求）
        const { imageList } = this.data;
        const analyzedImages = [];
        const results = [];
      
        imageList.forEach((img, index) => {
          // 模拟“大模型返回的分析后图片地址”（实际需替换为真实URL）
          analyzedImages.push(img + '?analyzed=' + Date.now()); 
          // 模拟“大模型返回的检测结果”（实际需替换为真实数据）
          results.push({
            status: index % 2 === 0 ? '健康' : '轻微龋齿', // 示例状态
            confidence: (90 + Math.random() * 10).toFixed(2) + '%' // 示例置信度
          });
        });
      
        // 更新数据，渲染界面
        this.setData({
          analyzedImageList: analyzedImages,
          detectionResults: results
        });
      },

    // 接收AI助手的事件
    onAiAction(e) {
        const { action } = e.detail
        switch (action) {
            case 'chat':
                wx.navigateTo({ url: '/pages/ai-chat/ai-chat' })
                break
            case 'help':
                wx.showModal({ title: '帮助', content: 'AI助手可帮您解答问题' })
                break
        }
    },

    // 实时拍照检测按钮点击
    onTakePhoto() {
        wx.showToast({
            title: '开始拍摄',
            icon: 'none'
        });
        // 实际业务中可调用微信相机API：wx.chooseImage 或 wx.createCameraContext
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {

    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})